package gob.inei.enaho.view.enaho01;

import java.sql.SQLException;
import java.util.List;

import com.inqbarna.tablefixheaders.TableFixHeaders;

import util.android.AndroidUtil;
import util.android.cuestionario.fragment.PageView;
import util.android.widgets.StringView;
import gob.inei.enaho.context.AppContext;
import gob.inei.enaho.model.domain.persona.Hogar;
import gob.inei.enaho.model.domain.ubicacion.Vivienda;
import gob.inei.enaho.model.service.HogarService;
import gob.inei.enaho.view.adapters.HogarAdapter;
import gob.inei.enaho2014.R;

public class Vivienda4Fragment 
extends AbstractViviendaFragment {
	
	private final HogarService hogarService = AppContext.getServices().getHogarService();
	private TableFixHeaders tabla;
	
	@Override
	public int getLayoutId() {
		return R.layout.vivienda4;
	}

	@Override
	protected void procesarOnCreateView(PageView pv) throws Exception {
		
		Vivienda v = vivienda;
		
		String con = v.getConglomerado().getCodigo();
		String viv = v.getCodigo();
		
		((StringView)pv.findViewById(R.id.conglomerado))		
		.setEtiquetaId_Valor(R.string.Pconglomerado, con)
		.getInput().setSoloLectura(true)
		;
		
		((StringView)pv.findViewById(R.id.nro_vivienda))
		.setEtiquetaId_Valor(R.string.Pvivienda, v.getCorrelativoString())
		.getInput().setSoloLectura(true)
		;
		
		((StringView)pv.findViewById(R.id.vivienda))
		.setEtiquetaId_Valor(R.string.Pseleccion, viv)
		.getInput().setSoloLectura(true)
		;
		
		((StringView)pv.findViewById(R.id.direccion))
		.setEtiquetaId_Valor(R.string.Pdireccion_vivienda, v.getDireccion())
		.getInput().setSoloLectura(true)
		;
		
		tabla = (TableFixHeaders) pv.findViewById(R.id.tablaHogares);			
	}

	@Override
	public void onPaginaSeleccionada(boolean avanzando, PageView pv) throws Exception {
		//AndroidUtil.mostrarToast(getActivity(), "onPageSelected");
		
		if(avanzando) {
			try {
				String con = vivienda.getConglomerado().getCodigo();
				String viv = vivienda.getCodigo();				
				hogarService.aperturarHogares(con,viv);
				
				actualizarListaHogares();
								
			} catch (SQLException e) {
				AndroidUtil.mostrarExcepcionEnToast(getActivity(), e);
			}
		}
	}
	
	public void actualizarListaHogares() throws SQLException {
		String con = vivienda.getConglomerado().getCodigo();
		String viv = vivienda.getCodigo();
				 				
		//List<Hogar> lista = new ArrayList<Hogar>(); 				
		List<Hogar> lista = hogarService.findByViviendaParaListaEnApertura(con,viv); 
		tabla.setAdapter(new HogarAdapter(this, lista));
	}
	
}